/* =============================================================
   THEME: novum / RCS — Refactored
   - Structured, deduplicated, and variable-driven
   - Bootstrap overrides preserved
   ============================================================= */

/* ------------------------------------------------------------------
   0) DESIGN TOKENS (CSS VARIABLES)
   ------------------------------------------------------------------ */
:root {
    /* Brand Colors */
    --color-primary: #58585a; /* novum / RCS GRAY/BLUE */
    --color-accent: #e1001a; /* RCS RED (a.k.a. novum GRÜN in legacy notes) */
    --color-accent-dark: #8c0a0a; /* Darker homepage red */
    /* Neutrals & Base */
    --color-white: #ffffff;
    --color-black: #000000;
    --color-gray-100: #f8f9fa; /* light background */
    --color-border: #dee2e6; /* table/pagination borders */
    /* Typography */
    --font-sans: "RCS Helvetica 55 Roman";
    --font-head: "RCS Helvetica 55 Roman";
    --font-weight-semibold: 600;
    --price-size: 1.3rem;
    /* Focus & Effects */
    --focus-shadow: rgba(0, 44, 118, 0.25); /* matches legacy */
    --radius-lg: 1rem;
}

/* ------------------------------------------------------------------
   1) BASE TYPOGRAPHY
   ------------------------------------------------------------------ */
/*html * {
    font-family: 'RCS Helvetica 55 Roman';
}*/

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-head);
}

h4, h5 {
    font-family: var(--font-head);
    font-weight: var(--font-weight-semibold);
}

.price {
    font-family: var(--font-sans);
    font-size: var(--price-size);
    font-weight: var(--font-weight-semibold);
}

/* ------------------------------------------------------------------
   2) COLOR UTILITY OVERRIDES
   ------------------------------------------------------------------ */
.text-primary, .text-primary-custom {
    color: var(--color-primary) !important;
}

.text-info {
    color: var(--color-primary) !important;
}

.text-success {
    color: var(--color-accent) !important;
}

.bg-primary {
    background-color: var(--color-primary) !important;
}

.border-primary {
    border-color: var(--color-primary) !important;
}

/* Hover helpers */
.novum-custom-hover:hover {
    color: var(--color-accent) !important;
}

.novum-custom-hover-white:hover {
    color: var(--color-white) !important;
}

.novum-custom-hover-blue:hover {
    color: var(--color-primary) !important;
}

.novum-hover-none:hover {
    pointer-events: none !important;
}

/* ------------------------------------------------------------------
   3) BOOTSTRAP COMPONENT OVERRIDES
   ------------------------------------------------------------------ */
/* Badges */
.badge-primary {
    background-color: var(--color-primary) !important;
}

/* Tables */
.table-striped > tbody > tr:nth-child(odd) > td,
.table-striped > tbody > tr:nth-child(odd) > th {
    background-color: var(--color-gray-100) !important;
}

.table-hover tbody tr:hover td,
.table-hover tbody tr:hover th {
    background-color: var(--color-gray-100) !important;
}

/* Cards */
.card-header, .card-footer {
    background-color: var(--color-gray-100);
}

.card-warenkorb-custom {
    background-color: var(--color-white);
    background-clip: border-box;
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: var(--radius-lg);
}

.card-title {
    padding: .75rem 1.25rem;
    margin-bottom: 0;
}

/* Pagination */
.page-item.active .page-link {
    z-index: 3;
    color: var(--color-white);
    background-color: var(--color-primary);
    border-color: #007bff; /* retain legacy nuance */
    border: 1px solid var(--color-border);
}

.page-link {
    color: var(--color-primary);
    border: 1px solid var(--color-border);
}

    .page-link:hover {
        color: var(--color-primary);
    }

    .page-link:focus {
        box-shadow: none;
    }

/* Tooltips */
.tooltip-inner {
    background: var(--color-primary) !important;
}

/* Forms */
.form-control:hover,
.form-control:focus,
.form-control:active {
    box-shadow: none !important;
    outline: 0;
}

.form-control:focus {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 0.2rem var(--focus-shadow);
}

.custom-control-input:checked ~ .custom-control-label::before {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

/* Buttons */
.btn:focus, .btn:active, .btn:hover {
    box-shadow: none !important;
    outline: 0;
}

.btn-outline-secondary:hover {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

.btn-primary {
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
}

    .btn-primary:hover {
        background-color: var(--color-accent) !important;
        border-color: var(--color-accent) !important;
        color: var(--color-white);
    }

.btn-success {
    background-color: var(--color-accent) !important;
    border-color: var(--color-accent);
}

    .btn-success:hover {
        background-color: var(--color-primary) !important;
        border-color: var(--color-primary);
    }

.btn-outline-primary {
    color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
}

    .btn-outline-primary:hover {
        color: var(--color-white) !important;
        background-color: var(--color-primary) !important;
    }

.btn-info {
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
}

/* Links */
a.text-primary:focus,
a.text-primary:hover {
    color: var(--color-accent) !important;
}

/* Dropdowns & Navbar */
.navbar {
    margin-bottom: 10px;
}

.dropdown-item:hover {
    background: var(--color-accent);
}

.nav-dropdown-item-main:hover {
    background-color: var(--color-primary);
    color: var(--color-white);
    font-weight: bold;
}

.nav-dropdown-item-secondary:hover {
    background-color: var(--color-gray-100);
    font-weight: bold;
}

.nav-dropdown-item-secondary-text {
    color: var(--color-primary) !important;
}

.nav-dropdown-item-main:hover .bi-arrow-right-short,
.nav-dropdown-item-secondary:hover .bi-arrow-right-short {
    color: var(--color-accent);
}

/* Carousel */
/* .carousel-indicators .active { background-color: var(--color-accent); } */
.carousel-indicators li {
    background-color: var(--color-primary);
}

.CarouselArrow:before {
    background-color: var(--color-gray-100);
}

/* ------------------------------------------------------------------
   4) INTERACTIONS & MICRO-UX
   ------------------------------------------------------------------ */
.suggesthover:hover {
    background-color: var(--color-gray-100);
}

.product-link {
    font-weight: normal;
    text-decoration: none;
    position: relative;
    transition: all 0.15s ease;
    color: inherit;
}

    .product-link:hover {
        text-decoration: none;
    }

    .product-link::after {
        content: '';
        position: absolute;
        width: 100%;
        height: 2px;
        background-color: transparent;
        left: 0;
        bottom: -2px;
        transform: scaleX(0);
        transform-origin: bottom right;
        transition: transform 0.3s ease, background-color 0.3s ease;
    }

    .product-link:hover::after {
        transform: scaleX(1);
        background-color: var(--color-primary);
        transform-origin: bottom left;
    }

.i-spezial:hover {
    color: #007bff;
}

.btn-hover-spezial:hover {
    background-color: #e2e6ea;
    border-color: #dae0e5;
}

.blockquote-spezial {
    font-size: 80%;
    color: #6c757d;
}

.custom-card-hover:hover {
    transform: scale(1.01);
    box-shadow: 0 10px 20px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.06);
}

.custom-image-hover:hover {
    opacity: 0.8;
}

/* ------------------------------------------------------------------
   5) LAYOUT & MEDIA
   ------------------------------------------------------------------ */
/* Containers — extended widths */
.container {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

.container-fluid, .container-lg, .container-md, .container-sm, .container-xl {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

@media (min-width: 576px) {
    .container, .container-sm {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    .container, .container-md, .container-sm {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .container, .container-lg, .container-md, .container-sm {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl {
        max-width: 1140px;
    }
}

@media (min-width: 1400px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl {
        max-width: 1340px;
    }
}

@media (min-width: 1600px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl {
        max-width: 1540px;
    }
}

@media (min-width: 1800px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl {
        max-width: 1740px;
    }
}

/* Cards & imagery */
.card-img-top {
    max-height: 30vh;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: scale-down;
}

.imagewrapper {
    width: 100%;
    position: relative;
    display: inline-block;
}

img.FeatureImage {
    height: 1.4rem;
}

img.FeatureValueImage {
    max-height: 2rem;
}

/* Hero */
.hero {
    position: relative;
    height: 100px !important;
    width: 100% !important;
}

    .hero:after {
        z-index: -1;
        position: absolute;
        top: -10%;
        left: 50%;
        margin-left: -10px;
        content: '';
        width: 0;
        height: 0;
        border-bottom: solid 10px var(--color-primary);
        border-left: solid 10px transparent;
        border-right: solid 10px transparent;
    }

/* Tags / ribbons */
.tag-custom,
.tag-custom-history,
.tag-custom-product {
    position: absolute;
    z-index: 1000;
}

.tag-custom {
    right: -10px;
    top: 40px;
    z-index: 5;
}

.tag-custom-history {
    right: -5px;
    top: 5px;
}

.tag-custom-product {
    right: 10px;
    top: 40px;
    z-index: 5;
}

/* Specialized blocks */
#CardCallOverView {
    min-width: 33rem;
    max-width: 35rem;
    display: inline-flex;
    min-height: 11rem;
}

@media (max-width: 600px) {
    #CardCallOverView {
        min-width: 28rem;
    }
}

div#SelectedArticleFeatures {
    margin-top: 1rem;
}

/* Dropdown submenu behavior */
.dropdown-menu li {
    position: relative;
}

.dropdown-menu .dropdown-submenu {
    display: none;
    position: absolute;
    left: 100%;
    top: -10px;
}

.dropdown-menu .dropdown-submenu-left {
    right: 100%;
    left: auto;
}

.dropdown-menu > li:hover > .dropdown-submenu {
    display: block;
}

/* Forms: Signin */
.form-signin {
    width: 100%;
    max-width: 330px;
    padding: 15px;
    margin: 0 auto;
}

/* ------------------------------------------------------------------
   6) PAYMENT (VR-PAYMENT)
   ------------------------------------------------------------------ */
.radio-image-text {
    display: flex;
    align-items: center;
    cursor: pointer;
    padding: 5px;
}

    .radio-image-text input {
        margin-right: 10px;
    }

    .radio-image-text img {
        max-width: 60px;
        max-height: 50px;
    }

/* ------------------------------------------------------------------
   7) TRANSLUCENT BACKGROUNDS (UTILITIES)
   ------------------------------------------------------------------ */
.bg-primary-opacity {
    background-color: rgba(0, 123, 155, 0.1) !important;
}

.bg-secondary-opacity {
    background-color: rgba(108, 117, 125, 0.1) !important;
}

.bg-success-opacity {
    background-color: rgba(40, 167, 69, 0.1) !important;
}

.bg-info-opacity {
    background-color: rgba(23, 162, 184, 0.1) !important;
}

.bg-warning-opacity {
    background-color: rgba(255, 193, 7, 0.1) !important;
}

.bg-danger-opacity {
    background-color: rgba(220, 53, 69, 0.1) !important;
}

/* ------------------------------------------------------------------
   8) MISC
   ------------------------------------------------------------------ */
.CarouselArrow:before {
    background-color: var(--color-gray-100);
}
